/*
 * PagEventosEvento.java
 * 
 * Projeto: Kruskal - SRAC
 * LEDS - Laboratório de Engenharia e Desenvolvimento de Software
 * IFES - Instituto Federal do Espírito Santo - Campus Serra.
 */
package srac.controleatividades.cih;

import java.util.Calendar;
import java.util.List;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.*;
import srac.controleatividades.cci.CtrlAtividade;
import srac.controleatividades.cdp.Aluno;
import srac.controleeventos.cci.CtrlEvento;
import srac.controleeventos.cdp.Evento;
import srac.controleeventos.cdp.Participante;
import srac.controleeventos.cdp.StatusEvento;

public class PagIncluirAtividadeEvento extends GenericForwardComposer {

    private CtrlAtividade ctrlAtividade = CtrlAtividade.getInstance();
    private CtrlEvento ctrlEvento = CtrlEvento.getInstance();
    private Window winIncluirAtividadeEvento;
    private Listbox listEventos;
    private Div boxInformacao;
    private Label msg;
    private Aluno obj;
    

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);
        ctrlAtividade.setPagIncluirAtividadeEvento(this);
        obj = (Aluno) arg.get("obj");
        //TODO verificar se a atividade ja foi utilziada anteriormente
        if(obj!=null)
        {
            List<Evento> eventos = ctrlEvento.obterEventosAtividade(obj);
            if(eventos.isEmpty())
            {
                setMensagemAviso("info", "Não existem eventos incritos!");
            }
            else
            {
                for (Evento e : eventos) {
                    Listitem linha = new Listitem(e.getNome(), e);
                    linha.appendChild(new Listcell(e.getData().get(Calendar.DATE) + "/"
                            + (e.getData().get(Calendar.MONTH) + 1) + "/"
                            + (e.getData().get(Calendar.YEAR))));
                    linha.setParent(listEventos);
                }
            }
        }
    }

    public void onCreate$winEventosEvento(Event event) {
        //if feito para verificar se existe algum usuario logado, se nao existir eh redirecionado para o login
        if (Executions.getCurrent().getSession().getAttribute("usuario") == null) {
            Executions.sendRedirect("/");
            winIncluirAtividadeEvento.detach();
            
        }
    }


    
    public void onClick$consultarEvento(Event event) {
        Listitem listitem = listEventos.getSelectedItem();
        if (listitem != null) {
            ctrlEvento.abrirConsultarEvento((Evento) listitem.getValue());
        } 
        else {
            setMensagemAviso("info", "Selecione um evento");
        }
    }
    
    public void onClick$incluirAtividade(Event event) {
        Listitem listitem = listEventos.getSelectedItem();
        if(listitem!=null)
        {
            ctrlAtividade.incluirAtividadeEvento((Evento) listitem.getValue(), obj);
            winIncluirAtividadeEvento.onClose();
        }
        else
        {
            setMensagemAviso("info", "Selecione um evento");
        }
    }

    public void setMensagemAviso(String tipo, String mensagem) {
        boxInformacao.setClass(tipo);
        boxInformacao.setVisible(true);
        msg.setValue(mensagem);
    }

    public void onClick$boxInformacao(Event event) {
        boxInformacao.setVisible(false);
    }
}
